<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Egreso_frm( $this );

	class Egreso_frm extends Frm
	{
	function Egreso_frm( &$oModule )
		{
			$this->Frm( $oModule );
			//Crea los Objetos de los campos de edicion
			$this->aFields['ncSolicitante']		= new InputLookUp ( "Solicitante", "ncSolicitante" );
			$this->aFields['Destinatario']		= new InputEntidad( "Destinatario", "Destinatario" );
			$this->aFields['ncEgreso']			= new Input("Codigo","ncEgreso", '', false, true);
			$this->aFields['dSolicitud']			= new InputDate( "Solicitud", "dSolicitud" );
			$this->aFields['dEgreso']				= new InputDate( "Egreso", "dEgreso" );
		}

	function setValue( $ncEgreso )
		{
			$cSql = "SELECT dEgreso, dSolicitud, ncSolicitante, ncTipoDestinatario, ncDestinatario
								FROM gtEgreso
								WHERE ncEgreso = '$ncEgreso'";
			$aRow = $this->oDatabase->getArray($cSql);
			$this->setFieldsArray ( $aRow );
			$this->aFields['Destinatario']->setTipoEntidad( $aRow['ncTipoDestinatario']);
			$this->aFields['Destinatario']->setValue( $aRow['ncDestinatario'] );
			return $aRow;
		}
	function initializeForm()
		{
			// Si Recibe la Pk => busca los datos
				if ( $this->isRetrievable() && $this->aFields['ncEgreso']->getValue()  )
				{
					$aRow = $this->setValue( $this->aFields['ncEgreso']->getValue() );
				}
			// Configura el Titulo
				$this->setLabel ( "Egreso");
			return true;
		}
	function verify()
	{
		$dEgreso= getParam('dEgreso');
		$ncDestinarario= getParam('Destinatario_Key');
		if ( $ncDestinarario )
		{
			$this->addMessage( "Verifique que la ficha no este ya cargada"  , FORM_ADVERTENCIA );
		}
	}
	function initializeField( $cField , &$oField )
		{
			switch ( $cField )
			{
				case 'ncSolicitante':
					$oField->setMandatory($this->isMandatory() );
					$oField->setForm( $this );
					$oField->setFieldActions( 'ncPersona');
					initializePersona( $oField );
					$oField->setHelp("Es un intermediario, que solicita el material para otro destinatario (campo de uso administrativo)");
				break;
				case 'Destinatario':
					$oField->setDefault( 1 );
					$oField->setMandatory($this->isMandatory() );
					$oField->nTipo = 2;
					$oField->setForm( $this );
					$oField->oTipo->setOptions('R');
					$oField->setDatabase( $this->oDatabase );
					$oField->setHelp("Es quien va a utilizar el material (campo de uso estadistico)");
					if ( $this->getOptionsLevel() > 1 ) $oField->setOnBlur($this->getVerifyEvent());
				break;
				case 'dSolicitud':
					$oField->setMandatory($this->isMandatory() );
				break;
				case 'dEgreso':
					$oField->setMandatory($this->isMandatory() );
					$oField->setDefault( date("Y-m-d") );
				break;
			}
		}
	}
?>